package com.holiday.spring.proxy.statics;

/**
 *
 * 代理：即隐藏最终的实现业务逻辑的类，可以在实现业务逻辑之前会之后增加处理代码
 *  1、静态代理：在程序之前已经存在class文件了。实现如下：
 *      1、A类为业务逻辑接口，B类实现A类业务逻辑接口，C类实现A类业务逻辑接口
 *      2、逻辑流转：
 *          1、C类实现了A类业务逻辑接口，在C类中使用A类调用对应的业务方法；
 *          2、B类实现了A类业务接口，在new C类的时候，同时new一个B类，通过构造函数将B类的指向到A类对象，这样在C类中使用A类调用对应的业务方法，
 *              实际是就是在执行B类中的方法，即多态
 *
 */
public class ProxyTest {
    public static void main(String[] args) {
        PayService payService = new StaticProxyPayServiceImpl(new PayServiceImpl());
        payService.callback("1");
    }
}
